package com.dhecp.project.system.mapper;

import java.util.List;
import java.util.Map;
import com.dhecp.core.genericDao.GenericDao;
import com.dhecp.project.system.domain.SysUserInfo;
import org.apache.ibatis.annotations.Param;

/**
 * 用户表 数据层
 * 
 * @author ruoyi
 */
public interface SysUserInfoMapper extends GenericDao<SysUserInfo, String>
{

    /**
     * 验证用户名和密码
     * @param params
     * @return 实体-UserInfo
     * @author DH-Xxj
     */
    SysUserInfo findByUserIdAndPass(Map<String, Object> params);

    /**
     * 拓展用户登录验证
     * @param params
     * @return String (返回异常提示信息，返回空代表无异常)
     * @author DH-Xxj
     */
    String findUserLoginException(Map<String, Object> params);
    
    /**
     * 根据条件分页查询用户列表
     * 
     * @param params 用户信息
     * @return 用户信息集合信息
     */
    List<SysUserInfo> findUserList(Map<String, Object> params);


    /**
     * 通过用户ID查询用户
     * @param userId 用户ID
     * @return 用户对象信息
     */
    public SysUserInfo findByUserId(@Param("userId") String userId);

    /**
     * 通过用户编号或用户姓名查询用户信息
     * @param userIdOrUserName
     * @return List-UserInfo
     * @author DH-Xxj
     */
    List<SysUserInfo> findByUserIdOrUserName(@Param("userIdOrUserName")  String userIdOrUserName);

    /**
     * 删除用户
     * @param 实体-userInfo
     * @return
     * @author DH-Xxj
     */
    int deleteUserByUserId(SysUserInfo userInfo);

    /**
     * 修改用户基础信息
     * @param userInfo
     * @return
     * @author DH-Xxj
     */
    int updateUserBaseInfo(SysUserInfo userInfo);
    
    /**
     * 修改密码
     * @param 实体-userInfo
     * @return
     * @author DH-Xxj
     */
    int updatePassWord(SysUserInfo userInfo);

    /**
     * 修改用户皮肤
     * @param 实体-userInfo
     * @return
     * @author DH-Xxj
     */
    int updateSkin(SysUserInfo userInfo);

    /**
     * 修改档案照片
     * @param 实体-userInfo
     * @return
     * @author DH-Xxj
     */
    int updateUserPhoto(SysUserInfo userInfo);

    /**
     * 修改用户头像
     * @param 实体-userInfo
     * @return
     * @author DH-Xxj
     */
    int updateUserPicture(SysUserInfo userInfo);

    /**
     * 通过userId修改用户姓名
     * @param userId 必要参数：用户编号
     * @param userName 必要参数：用户姓名
     * @return
     * @author DH-Xxj
     */
    int updateUserNameByUserid(Map<String, Object> params);
}
